package cn.wolfcode.trip.app.controller;

import cn.wolfcode.trip.base.domain.GoodStyle;
import cn.wolfcode.trip.base.domain.Goods;
import cn.wolfcode.trip.base.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

//该项目是符合REST规范的,此时该控制器表示操作用户的资源
@RestController //Controller+ResponseBody
@RequestMapping("/goodStyles")
public class GoodStyleController {
    @Autowired
    private IGoodsService goodsService;
    @Autowired
    private IGoodStyleService goodStyleService;

    /*
    更新某个用户的游记
    资源:/goodStyles
    动作:GET
    参数:
     */
    @GetMapping
    public Object list() {
        List<GoodStyle> list = goodStyleService.list();
        return list;
    }

    /*
    保存某个用户的游记
    资源:/users/{authorId}/travels
    动作:POST
    参数:很多...(参考数据库表)
     */
    /*@PostMapping("/{authorId}/travels")
    public Object saveTravels(Travel entity) {
        //自动填充作者
        entity.setAuthor(UserContext.getCurrentUser());
        travelService.saveOrUpdate(entity);
        return new JSONResult();
    }*/

    /*
    获取某个用户的所有游记(带有分页功能)
    资源:/users/{authorId}/travels
    动作:GET
    参数:currentPage=x
     */
    @GetMapping("/goods/{goodsId}")
    public Object getGoods(@PathVariable Long goodsId) {
        //需要按照发布时间排序,这里设置下
        Goods goods = goodsService.get(goodsId);
        return goods;
    }

    /*
        注册用户的接口
        资源:/users
        动作:POST
        参数:email=xx&nickName=xx&password=xx
     */
    /*@PostMapping
    public Object regist(User u) {
        JSONResult result = new JSONResult();
        try {
            //调用业务层注册的方法
            userService.regist(u);
            result.setData(u); //设置当前登录的用户,一起返回
        } catch (Exception e) {
            e.printStackTrace();
            result.mark(e.getMessage());
        }
        return result;
    }*/

    /*
    更新用户信息
    资源:/users/{id}
    动作:PUT
    参数:nickName=xx&gender=xx&place=xx&sign=xx&headImgUrl=xx&coverImgUrl=xx
     */
    /*@PutMapping("/{id}")
    public Object updateUser(User u) {
        JSONResult result = new JSONResult();
        try {
            //调用业务层注册的方法
            userService.saveOrUpdate(u);
            result.setData(u); //设置当前登录的用户,一起返回
        } catch (Exception e) {
            e.printStackTrace();
            result.mark(e.getMessage());
        }
        return result;
    }*/
    //-------(SYM新增的)--------------
    /*
    添加某个用户的签到时间
    资源:/users/{id}/signTimes
    动作:POST
    参数:
     */
    /*@PostMapping(value = "/{userId}/signTimes" , produces = "text/html;charset=UTF-8")
    public Object saveSignTime(@PathVariable Long userId){
        Map<String, Object> map = signService.saveSignTime(userId);
        return JSONUtil.toJSONString(map);
    }*/

     /*
    查询某个用户的签到时间表
    资源:/users/{id}/signTimes
    动作:GET
    参数:
     */
     /*@GetMapping("/{userId}/signTimes")
     public Object listSignTime(@PathVariable Long userId){
         return signService.query(userId);
     }*/


    /*
  查询某个用户的积分
  资源:/users/{id}/vantages
  动作:GET
  参数:
   */
    /*@GetMapping("/{userId}/vantages")
    public Object getVartages(@PathVariable Long userId){
        return userVantagesService.get(userId);
    }*/
     //---------------------------------
}
